'''
Pythont中的内置函数
用于去掉字符串最外侧的引号，并按照Python语句方式执行去掉引号后的字符串
eval()函数经常和input()函数一起使用

eval()的语法格式：
变量=eval(字符串)
'''

s = '3.14+3'
print(s, type(s))
x = eval(s)  # 使用eval()函数去除掉字符串最外侧的引号，使其得以运算或运行，执行最后的结果
print(x, type(x))

# eval()函数经常和input()函数一起使用,用来实现获取用户输入的值,它自动根据输入的值，转化为对应的int,float,str等类型
# age = input('请输入年龄：')  # 直接执行input接收到的数据都是str类型
# print(age, type(age))  # 7 <class 'str'>
# age = eval(input('请输入年龄：'))  # 将字符串类型转换为int类型，相当于执行了int(age)操作
# print(age, type(age))  # 7 <class 'int'>
#
# height = input('请输入身高：')
# print(height, type(height))  # 1.75 <class 'str'>
# height = eval(input('请输入身高：'))
# print(height, type(height))  # 1.75 <class 'float'>

# 可以将字符串转化为变量名
hello = '北京欢迎你'
print(hello, type(hello))  # 北京欢迎你 <class 'str'>
print(eval('hello'))  # 北京欢迎你  <class 'str'>
print(eval('hello'), type(eval('hello')))  # 北京欢迎你 <class 'str'>
print(eval(hello), type(eval('hello')))  # NameError: name '北京欢迎你' is not defined
